package me.shurufa.fragments;

import android.support.v7.widget.RecyclerView;

import java.util.ArrayList;

import me.shurufa.net.BaseResponse;

/**
 * 所有列表抽象类
 * 需要实现addDataToList方法
 * 需要自己去控制recyclerView的展现形式 该类没有进行刷新加载的控制
 * 因为部分列表没有刷新或加载的功能 如果需要后期需要再加一个继承此类
 * 并实现刷新、加载的基类
 *
 * @FileName: me.shurufa.fragments.BaseListFragment.java
 * @author: kHRYSTAL
 * @email: 723526676@qq.com
 * @date: 2016-01-21 22:08
 */
public abstract class BaseListFragment extends BaseFragment{
    RecyclerView.Adapter mAdapter;
    ArrayList dataList;
    long lastResponseTime;

    /**
     * 注意 如果需要展现内容为空时布局 需要重写这个方法
     * 通过mAdapter.getItemCount()
     * 判断内容是否为空
     * @param response
     * @param isNew
     */
    @Override
    protected void bindData(BaseResponse response, boolean isNew) {
        super.bindData(response, isNew);
        if (response.success) {
            addDataToList(response, isNew);
            if (mAdapter!=null) {
                mAdapter.notifyDataSetChanged();
            }
        }
    }

    /**
     *
     * @param response
     * @param isNew    true 写到缓存  false不写缓存
     */
    protected abstract void addDataToList(BaseResponse response, boolean isNew);

    protected abstract void showEmptyView();

    protected abstract void hideEmptyView();

    protected abstract void setHasMore(boolean hasMore);
}
